prices.hour
Overview
Theprices.hour
table provides hourly token price data across all supported blockchains. It contains volume-weighted average prices for each hour, ensuring a continuous time series for more granular price analysis than daily data.
Table Schema
Column | Type | Description |
---|---|---|
blockchain | varchar | Blockchain identifier (e.g., ‘ethereum’, ‘arbitrum’) |
contract_address | varbinary | Token contract address (fixed address for native tokens) |
symbol | varchar | Token symbol (e.g., ‘ETH’, ‘USDC’) |
timestamp | timestamp | Hour timestamp (00:00, 01:00, etc. UTC of each hour) |
price | double | Token price in USD (volume-weighted average) |
decimals | int | Token decimals |
volume | double | Trading volume in USD (from price source) |
source | varchar | Data source (‘coinpaprika’ or ‘dex.trades’) |
Implementation Details
The hourly prices are built through these steps:- Collect sparse price observations from different sources
- Group by hour, calculating volume-weighted average price per hour
- Fill missing hours with the previous hour’s price (forward filling)
- Set a 7-day (168 hour) expiration for forward filling to avoid stale data
Usage
This table is useful for intraday analysis and tracking price movements with higher granularity than daily data. It’s suitable for examining price patterns within a day or across multiple days. Note: The underlying data sources are aligned to 5-minute intervals for consistency and improved data quality.Latency and Update Frequency
Theprices.hour
table is updated hourly based on the upstream data pipeline. As a result, prices typically have a latency of approximately 1 hour from real-time.
Usage Examples
Here are some examples of how to use the prices tables.Get hourly ETH prices for the last day:
Calculate volatility by hour of day:
Data Quality Notes
- Prices older than 7 days (168 hours) will not be forward-filled to avoid using stale data
- Native tokens (like ETH, BNB) are assigned fixed addresses for consistency
- Hourly data is useful for analyzing intraday patterns and short-term price movements
- Always use
contract_address
andblockchain
for precise token identification, never usesymbol
for joins or filters - Prices are calculated using volume-weighted averages for more accurate representation
- Quality Filtering: The system includes filtering mechanisms to reduce the impact of anomalous trades
- Data Limitations: While filtering helps improve data quality, users should always validate prices for critical applications